Cancer Detection Systems and Methods

ABSTRACT

A piece of medical information, e.g., a medical image of tissue, may be received for processing and analysis on a computing device or system. A region of the medical image may be analyzed to determine a presence of one or more contours in the region. One or more properties of the one or more contours may be extracted, where the one or more properties are inputted into a first algorithm to determine an indication of cancer for the region. The indication of cancer may be inputted into a second algorithm to generate a cancer score for the region.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/236,168 filed on Oct. 2, 2015, which is incorporated herein byreference in its entirety.

FIELD

The present disclosure generally relates to systems and methods fordetecting and quantifying cancer cells in tissue.

BACKGROUND

Cancer is a disease that continues to kill a tremendous number of peopleeach year and there are a significant number of health professionalsthat handle various aspects of cancer and its treatment. Currently, whencancer is suspected, medical information about the tissue, such as amedical image, may be gathered for the affected tissue, where aphysician reviews the medical information to identify possible areas inthe tissue that may have cancer cells. This analysis typically leads toan all clear diagnosis (if no areas are identified by the physician) ora recommendation for a biopsy of the tissue to confirm that any possibleareas of cancer cells are in fact cancerous cells. In the context ofbreast cancer, the medical image is typically a mammogram. This existingapproach results in an about 60% cumulative risk of a false positive andan about 20% average false negative rate. A false positive may result ina patient who did not have cancer having to endure a painful, intrusive,and unnecessary biopsy. A false negative may result in not detectingcancer as early as it could have otherwise been detected.

Other systems exist that use computer-aided detection to assist aphysician in analyzing medical images. However, many of thesecomputer-aided detection systems actually reduce the accuracy of theanalysis of the medical imaging thus resulting in higher number of falsepositives and false negatives. There remains a need for improved cancerdetection and quantification systems and methods.

SUMMARY

A computer-implemented method for cancer detection and quantificationmay include: receiving a medical image through a communicationsinterface of a computing device over a data network; analyzing themedical image, with a processor of the computing device, to determine afirst subset of contours in the medical image satisfying certaincriteria; analyzing, with the processor, geometric attributes andcontrast attributes of contours included in the first subset of contoursto identify a second subset of contours based upon contours satisfyingpredetermined geometric and contrast attributes; selecting, with theprocessor, a third subset of contours from the second subset of contoursthat corresponds to potential calcifications, where the third subset ofcontours is selected based on contours within the second subsetsatisfying first calcification criteria; ranking, with the processor,contours included in the third subset of contours based on a selectionmetric, where the selection metric accounts for a combination ofcontrast and intensity; grouping, with the processor, the contoursincluded in the third subset of contours into nested structures;selecting, with the processor, calcifications from the nested structuressatisfying second calcification criteria; grouping, with the processor,the selected calcifications into clusters based on one or more ofneighboring calcifications and a spatial cluster scale; classifying,with the processor, the clusters as benign or possible cancer byperforming a regression analysis on calcifications within the clusters,edge detection, a density analysis of the clusters, and a circularityanalysis of the clusters; and scoring, with the processor, the clustersusing an analytic function of geometric and contrast properties of thecalcifications within each cluster, and spatial arrangements of thecalcifications within each cluster.

A system may include a computing device including a network interfacefor communications over a data network, and a cancer score engine havinga processor and a memory. The cancer score engine may include a networkinterface for communications over the data network, where the cancerscore engine is configured to receive a medical image from the computingdevice, and the memory is configured to store the medical image. Theprocessor may be configured to analyze the medical image, generate acancer score for the medical image, and transmit the cancer score to thecomputing device for display on a user interface thereof. Analysis ofthe medical image may include the steps recited above for thecomputer-implemented method.

In another aspect, a computer-implemented method for cancer detectionand quantification includes: receiving one or more pieces of medicalinformation for processing and analysis on a computing device, where theone or more pieces of medical information includes a medical image oftissue; analyzing, with a processor of the computing device, a region ofthe medical image to determine a presence of one or more contours in theregion; extracting, with the processor, one or more properties of theone or more contours, the one or more properties including a geometricattribute and a contrast attribute; inputting, with the processor, theone or more properties into a first algorithm to determine an indicationof cancer for the region; inputting, with the processor, the indicationof cancer into a second algorithm to generate a cancer score for theregion; and generating the cancer score for the region.

These and other features, aspects and advantages of the presentteachings will become better understood with reference to the followingdescription, examples, and appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features and advantages of the devices,systems, and methods described herein will be apparent from thefollowing description of particular embodiments thereof, as illustratedin the accompanying drawings. The drawings are not necessarily to scale,emphasis instead being placed upon illustrating the principles of thedevices, systems, and methods described herein

FIG. 1 illustrates a networked cancer detection and quantificationsystem.

FIG. 2 is a flow chart of a method for determining a cancer score.

FIG. 3 is a flow chart of a method for detecting and quantifying cancer.

FIG. 4 depicts a medical image of calcifications in a patient's tissue.

FIG. 5 illustrates an example of a selection process for a malignantcluster of micro-calcifications.

FIG. 6 illustrates an example of the identification of a cluster ofcalcifications.

FIG. 7 is a graph showing an example of a packing fraction as a functionof <A_(i)>A_(max) for exemplary clusters.

FIG. 8 is a flow chart of a method for cancer detection andquantification.

DETAILED DESCRIPTION

The embodiments will now be described more fully hereinafter withreference to the accompanying figures, in which preferred embodimentsare shown. The foregoing may, however, be embodied in many differentforms and should not be construed as limited to the illustratedembodiments set forth herein. Rather, these illustrated embodiments areprovided so that this disclosure will convey the scope to those skilledin the art.

All documents mentioned herein are hereby incorporated by reference intheir entirety. References to items in the singular should be understoodto include items in the plural, and vice versa, unless explicitly statedotherwise or clear from the text. Grammatical conjunctions are intendedto express any and all disjunctive and conjunctive combinations ofconjoined clauses, sentences, words, and the like, unless otherwisestated or clear from the context. Thus, the term “or” should generallybe understood to mean “and/or” and so forth.

Recitation of ranges of values herein are not intended to be limiting,referring instead individually to any and all values falling within therange, unless otherwise indicated herein, and each separate value withinsuch a range is incorporated into the specification as if it wereindividually recited herein. The words “about,” “approximately,”“substantially,” or the like, when accompanying a numerical value, areto be construed as indicating a deviation as would be appreciated by oneof ordinary skill in the art to operate satisfactorily for an intendedpurpose. Ranges of values and/or numeric values are provided herein asexamples only, and do not constitute a limitation on the scope of thedescribed embodiments. The use of any and all examples, or exemplarylanguage (“e.g.,” “such as,” or the like) provided herein, is intendedmerely to better illuminate the embodiments and does not pose alimitation on the scope of the embodiments. No language in thespecification should be construed as indicating any unclaimed element asessential to the practice of the embodiments.

In the following description, it is understood that terms such as“first,” “second,” “top,” “bottom,” “up,” “down,” and the like, arewords of convenience and are not to be construed as limiting terms.

In general, described herein are devices, systems, and methods forcomputer based cancer detection and quantification. As used throughoutthis disclosure, “detection” of cancer may include uncovering, to aparticular degree or range of certainty (which may be a predetermineddegree/range, or a degree/range following standard industry practice),whether cancerous cells are present (or not present) in a sample oftissue. Thus, detection may include discovering, affirming, finding,uncovering, unearthing, revealing, exposing, etc., the existence orabsence of cancer cells in a sample, which can be depicted in a medicalimage. The cancer cells may include malignant or benign cells. As usedthroughout this disclosure, “quantification” of cancer may includedetermining, indicating, or expressing the quantity of cancer cells in asample. The quantity of cancer cells may include a specific number,range, or threshold of cells, the size of cells or groupings of cells,and so forth. Quantification of cancer may also or instead includegenerating a “score” or “indication” as described herein. Quantificationof cancer may also or instead include generating a “grade” or “stage” ofcancer. In general, and unless explicitly stated or otherwise apparentfrom the context, “detection” of cancer may be included in the“quantification” of cancer and vice-versa. For instance, in an aspect,if a quantity of cancer cells is determined (i.e., a quantification),then cancer is detected. In another aspect, if a certain cancer score isdetermined, cancer is detected.

Although devices, systems, and methods discussed herein generallydescribe the detection and quantification of cancer, detection andquantification of other diseases, cells, physiological anomalies, andthe like, may also or instead be enabled by the devices, systems, andmethods discussed herein. Although certain embodiments discussed hereindescribe the detection and quantification of cancer for the specific usecase of breast cancer, the devices, systems, and methods discussedherein can be adapted to detect and quantify other cancers includingwithout limitation brain, lung, liver, prostate, bone, cervical, colon,leukemia, Hodgkin disease, kidney, lymphoma, oral, skin, stomach,testicular, thyroid, and so forth. Furthermore, although embodimentsgenerally described herein are detecting and quantifying cancer inmedical images of human tissue, the embodiments may also or instead beapplicable to cancer in animals, for example.

In general, the devices, systems, and methods discussed herein mayutilize medical image analysis, which may be automated through the useof various hardware and software as described herein. The medical imageanalysis techniques discussed herein may thus be used quantify cancer(e.g., breast cancer) and/or generate a cancer quantification. It willbe appreciated, however, that the implementations discussed herein mayalso or instead generate a cancer quantification based on other piecesof medical information about tissue other than images as describedherein and may be implemented in other ways than those described hereinthat are within the scope of the disclosure. In one embodiment describedbelow, the computer based cancer quantification system and method may beused for detecting and quantifying breast cancer in humans where themedical images are mammograms.

Implementations may provide an accurate quantification of cancer thatcan be utilized in a number of different ways. For example, an accuratequantification of cancer may be used for an accurate detection of cancerin a piece of medical information, such as a medical image, an earlydetection of cancer, the growth rate of cancer, or a prediction of thelikelihood of cancer. An accurate quantification of cancer may also orinstead be used to reduce the number of unnecessary biopsies (i.e.,reduce false positives) and reduce the number of undiagnosed cancers(i.e., reduce false negatives). An accurate quantification of cancer mayalso or instead be used to determine a tumor “grade,” e.g., a measure ofthe aggression of a specific form of cancer, whether the cancer ischanging or is it staying localized (in some cases one may want to leavethe cancer alone rather than operate based on the tumor grade), and soforth. An accurate quantification of cancer may also or instead be usedto determine how a treatment is affecting the cancer cells or isproducing new cancer cells.

Moreover, the systems and methods described herein may be used todetermine a type of cancer; to evaluate a physician, a shift, a clinic,a hospital, or a system-wide performance of a medical center staff,identify false positives and false negatives in a population of auditedimages; to train students and doctors to improve their efficacy; and toassist clinicians, doctors, care-givers, and patients to have a betterunderstanding of anomalies found in medical images. Those of skill inthe art will recognize other uses of the present methods and systems.

The devices, systems, and methods discussed herein may be used togenerate a “score” that quantifies any tissue anomalies. The score mayalso be referred to herein as a “Q score,” “Q factor,” or the like. Withrespect to cancer, the cancer score may be expressed in any suitable oruseful level of granularity such as with discrete categories (e.g.,cancerous, non-cancerous, benign, malignant, cancer-free, tumor-free,and so on), or with a numerical score, alphabetic score/grade, or otherquantitative indicator. For example, the cancer score may be a two-statescore (e.g., cancer detected or cancer-free), a three-state score (e.g.,cancer detected, cancer-free, unknown), a five-state score (e.g.,unknown, cancer detected, cancer-free, benign, malignant), arange-bounded quantity (e.g., a score from 0-10, 0-100, or 0-1,000), orany other suitable score for quantifying cancer with any desired degreeof granularity. The cancer score may also or instead be scaled. By wayof example, tissue abnormalities may be associated with a score or thelike, which may be based on a predetermined scale, e.g., 0-100, wherecertain known benign abnormalities would have a score close to or equalto 0 and certain known malignant abnormalities detected in advancedstages would have a score close to or equal to 100 (or vice-versa). Inanother aspect, cancer information may be multi-dimensional, so thatmultiple aspects may be independently scored. It shall be understoodthat the cancer score may change to indicate that cancer is more likelyas the cancer cells/tumor grows and the cancer score may also change toindicate the opposite when the cancer cells/tumor shrinks. As discussedabove, in one implementation, a smaller cancer score indicates a benigntumor and a larger cancer score indicates cancer.

As another example, the devices, systems, and methods discussed hereinmay be used to guide a radiologist analyzing a medical image, or topre-screen, supplement, verify, or replace a radiologist's review. Forexample, in the context of breast cancer, a radiologist typicallyreviews each mammogram. It has been shown that for every 100 screeningmammograms performed, 10% are recalled for subsequent procedures, and ofthose, only 5% are found have cancer. This indicates that the prevalenceof cancer currently found by radiologists in all mammograms is only0.5%. In other words, 99.5% of the time using current methods andtechniques, there is no cancer found in the mammogram by radiologists.

Thus, the devices, systems, and methods discussed herein may be used toprescreen mammograms, score the mammograms according to a cancer scoreas discussed herein, and/or identify mammograms that indicate noanomalies or show only known benign anomalies (no cancer). At thediscretion of the medical image reader, those indicated areas of theimage can be more efficiently analyzed for the absence of cancer. Thus,implementations may generate an indication of the absence of cancer incertain medical images and the radiologist may not need to review thosemedical images in as much detail based on the indication of the absenceof cancer for the particular mammogram. With this pre-screening, inparticular with the assistance of the automated systems contemplatedherein, a radiologist may more efficiently analyze a larger number ofmammograms.

As yet another example, implementations may be used to generate anassessment or prediction of the activity of a cancer for a patient(e.g., implementations can determine that, over a particular timeperiod, a cancer will not grow significantly or has not grownsignificantly), which may be used to determine a treatment for theparticular patient. By way of example, a patient with prostate cancermay receive an assessment that the cancer is not going to growsignificantly in the next six months and the patient may then opt for aless invasive treatment plan.

In another example, a retrospective study can be conducted whereby thepresent systems and methods are used to analyze a radiologist's previousfindings to determine whether (and at what rate) a radiologist succeededor failed to detect cancer in a medical image, and whether a cancerscore as described herein is different from the radiologist assessment.In addition, the rate of false positives and false negatives can bedetermined.

FIG. 1 illustrates a networked cancer detection and quantificationsystem. As shown in the figure, the system 100 may include a clientserver implementation of a cancer quantification system. The system 100may include one or more computing devices 102 that are each used by auser or an administrator to couple to and interact with, over a network104, a backend component 106. Although a client server/webimplementation of the system 100 is shown, the system 100 may also beimplemented using a software as a service (SaaS) model, a standalonecomputer, WiFi and tablet based solutions, and other computerarchitectures.

The one or more computing devices 102 may include a processor basedcomputing device that has at least one processor 103, a memory 105,persistent storage, a display, and communication circuits so that eachcomputing device 102 can communicate with the backend component 106,display a generated cancer score, submit pieces of medical informationto the backend component 106, or otherwise interact with the backendcomponent 106 or another component of the system 100. For example, thecomputing device 102 may include without limitation a smartphone device,a tablet computer, a personal computer, a laptop computer, a terminaldevice, a cellular phone, and the like. In some embodiments, thecomputing device 102 may execute an application, such as a known browserapplication or mobile application, that facilitates the interaction ofthe computing device 102 with the backend component 106. The one or morecomputing devices 102 may also or instead include other devices, forexample including client devices such as a computer or computer system,a tablet, a mobile phone, or any other mobile or fixed computing device.

The computing device 102 may include a desktop computer workstation. Thecomputing device 102 may also or instead be any device suitable forinteracting with other devices over a network 104, such as a laptopcomputer, a desktop computer, a personal digital assistant, a tablet, amobile phone, a television, a set top box, a wearable computer, and thelike. The computing device 102 may also or instead include a server orit may be disposed on a server, such as any servers described herein.

The computing device 102 may be used for any of the entities describedherein. In certain aspects, the computing device 102 may be implementedusing hardware (e.g., in a desktop computer), software (e.g., in avirtual machine or the like), or a combination of software and hardware.The computing device 102 may be a standalone device, a device integratedinto another entity or device, a platform distributed across multipleentities, or a virtualized device executing in a virtualizationenvironment.

In general, the computing device 102 may include a processor 103, amemory 105, a network interface 124, a data store, and one or moreinput/output interfaces. The computing device 102 may further include orbe in communication with peripherals and other external input/outputdevices that might connect to the input/output interfaces.

The processor 103 may be any processor or other processing circuitrycapable of processing instructions for execution within the computingdevice 102 or system 100. The processor 103 may include asingle-threaded processor, a multi-threaded processor, a multi-coreprocessor and so forth. The processor 103 may be capable of processinginstructions stored in the memory 105 or the data store.

The memory 105 may store information within the computing device 102.The memory 105 may include any volatile or non-volatile memory or othercomputer-readable medium, including without limitation a Random AccessMemory (RAM), a flash memory, a Read Only Memory (ROM), a ProgrammableRead-only Memory (PROM), an Erasable PROM (EPROM), registers, and soforth. The memory 105 may store program instructions, program data,executables, and other software and data useful for controllingoperation of the computing device 102 and configuring the computingdevice 102 to perform functions for a user. The memory 105 may include anumber of different stages and types of memory for different aspects ofoperation of the computing device 102. For example, a processor mayinclude on-board memory and/or cache for faster access to certain dataor instructions, and a separate, main memory or the like may be includedto expand memory capacity as desired. All such memory types may be apart of the memory 105 as contemplated herein.

The memory 105 may, in general, include a non-volatile computer readablemedium containing computer code that, when executed by the computingdevice 102 creates an execution environment for a computer program inquestion, e.g., code that constitutes processor firmware, a protocolstack, a database management system, an operating system, or acombination of the foregoing, and/or code that performs some or all ofthe steps set forth in the various flow charts and other algorithmicdescriptions set forth herein. While a single memory 105 is depicted, itwill be understood that any number of memories may be usefullyincorporated into the computing device 102. For example, a first memorymay provide non-volatile storage such as a disk drive for permanent orlong-term storage of files and code even when the computing device 102is powered down. A second memory such as a random access memory mayprovide volatile (but higher speed) memory for storing instructions anddata for executing processes. A third memory may be used to improveperformance by providing higher speed memory physically adjacent to theprocessor 103 for registers, caching, and so forth. The processor 103and the memory 105 can be supplemented by, or incorporated in, logiccircuitry.

The network 104 may include a communications path such as a wired orwireless network that uses a communications protocol and a dataprotocol, such as HTTP or HTTPS and HTML or JSON or REST, to allow eachcomputing device 102 to interact with the backend component 106. Thenetwork 104 may be a wired network, a wireless computer network, awireless digital data network, a cellular wireless digital data network,or a combination of these networks that form a pathway between eachcomputing device 102 and the backend component 106.

The network 104 may also or instead include any data network(s) orinternetwork(s) suitable for communicating data and control informationamong participants in the system 100. This may include public networkssuch as the Internet, private networks, and telecommunications networkssuch as the Public Switched Telephone Network or cellular networks usingthird generation cellular technology (e.g., 3G or IMT-2000), fourthgeneration cellular technology (e.g., 4G, LTE. MT-Advanced, E-UTRA,etc.) or WiMax-Advanced (IEEE 802.16m)) and/or other technologies, aswell as any of a variety of corporate area, metropolitan area, campus orother local area networks or enterprise networks, along with anyswitches, routers, hubs, gateways, and the like that might be used tocarry data among participants in the system 100. The network 104 mayalso include a combination of data networks, and need not be limited toa strictly public or private network. The participants in the system 100may each be configured with a network interface 124 for communicationsover the network.

A user 108 of the system 100 may be a patient, a doctor, a radiologist,a health care organization, an image analyst, a client, and the like.The user 108 may, using the computing device 102, submit one or morepieces of medical information 108 for quantification by the system 100and/or receive, from the backend component 106, a cancer quantificationscore based on the received pieces of medical information 110. Thebackend component 106 may include storage 112 coupled to the backendcomponent 106 (e.g., a memory, a database, and the like) that may storevarious data associated with the system 100 including a plurality ofpieces of medical information 110 that may be used to generate one ormore cancer quantification scores, user data associated with the system,and the like. The storage 112 may be implemented using a known softwarebased or hardware based storage system.

The backend component 106 may be implemented using one or more computingresources including without limitation a processor 114, a memory 116,persistent memory/storage, and the like. By way of example, eachcomputing resource may be a blade server, a server computer, anapplication server, a database server, a cloud computing resource andthe like. When the system 100 is implemented as the client serverarchitecture as shown in the figure, the backend component 106 may havea web server 118 or the like that manages the connections andinteractions with each computing device 102, generates HTML code to sendto each computing device 102, receives data from each computing device102, and the like. The web server 118 may be implemented in hardware orsoftware. Non-limiting examples of code include HTML, JavaScript,Python, Java, C++, and the like. Those of skill in the art willrecognize other computer languages which can be useful.

The backend component 106 may include a cancer score engine 120 thatanalyzes pieces of medical information 110 about potentially canceroustissue. The cancer score engine 120 may generate any indications ofcancer in any regions of the image and may generate a cancer score 122for any regions of the image in which there is an indication of cancer.The cancer score engine 120 may receive/obtain the pieces of medicalinformation 110 about potentially cancerous tissue from a computingdevice 102, over a computer network from a third party, or from thestorage 112 of the system 100. The cancer score 122 may be transmittedthrough the network 104, e.g., for display on the one or more computingdevices 102. The cancer score engine 120 may be implemented in softwareor hardware. When the cancer score engine 120 is implemented insoftware, the cancer score engine 120 (and its components) m ay comprisea plurality of lines of computer code that may be stored in a memory 116and executed by a processor 114 of the backend component 106 so that theprocessor 114 is configured to perform the processes of the cancer scoreengine 120 (and its components) as described herein. When the cancerscore engine 120 is implemented in hardware, the cancer score engine 120(and its components) may comprise a microcontroller, a programmablelogic device, an application specific integrated circuit, or otherhardware device in which the hardware device performs the processes ofthe cancer score engine 120 (and its components) as described herein.The cancer score engine 120 may include an algorithm or series ofalgorithms that assist in generating the cancer score 122 as discussedherein.

The one or more pieces of medical information 108 may include a medicalimage. The medical image may include an x-ray image, e.g., a mammogramand the like. The medical image may also or instead include magneticresonance images (MRI), computerized tomography (CT)s can images,ultrasound images, and so on. Such images can be displayed in a numberof formats including without limitation JPEG, PNG, TIFF, and the like.Those of skill in the art will recognize other image formats useful inthe embodiments described herein.

The system 100 may instead be implemented as part of a standalonecomputer implementation of a cancer detection and quantification system.In this implementation, the cancer score engine 120 may be executed onone of the computing devices 102, e.g., by a processor 103 and memory105, based on one or more pieces of medical information 110 stored inthe computing device 102 or input into the computing device 102. Thecomputing device 102 may have a display 126 and any other additionalhardware including without limitation input/output devices such as akeyboard and a mouse as shown. The display 126 may include a userinterface, e.g., a graphical user interface. The computing device 102may also include the processor, and a persistent storage device such asflash memory or a hard disk drive and memory, such as DRAM or SRAM, thatare connected to each other. When the computing device 102 is used toimplement the cancer quantification system and the cancer score engine120 is implemented in software, the memory 105 may store the cancerscore engine 120 and an operating system and the processor 103 of thesystem may execute a plurality of lines of computer code that implementthe cancer score engine 120 so that the processor 103 of the computersystem is configured to perform the processes of the cancer score engine120 as described herein.

The cancer score engine 120 may, in general, receive one or more piecesof medical information 110 about potentially cancerous tissue of apatient and, for each piece of tissue for the patient, generate one ormore cancer scores 122 about one or more regions in the piece of tissue.The piece of tissue may include without limitation any piece of humantissue or any piece of animal tissue that may comprise cancer cells.

FIG. 2 is a flow chart of a method for determining a cancer score. Thecancer score may be generated or determined by the cancer score engine.In general, the method 200 may involve processing and analyzing one ormore pieces of medical information for generating, in the case of amedical image, for one or more regions of the image, an indication ofcancer. For example, as described in more detail below, the method 200may gather variables that are pertinent to cancer, programmaticallyanalyze the piece(s) of medical information to determine values of thevariables, transform these variables for use in generating a cancerindication or score, and then generate an indication of cancer based onthese variables or a transformation of these variables. In the case of amedical image, a cancer score generator component may receive theindications of cancer in the one or more regions of the image andgenerate a cancer score for at least one region of the image. The cancerscore may have a value that increases as a cancer tumor grows anddecreases as a cancer tumor shrinks. In some embodiments, the cancerscore may be normalized and have threshold levels so that, for example,a normalized cancer score of 1-3 indicates a benign tumor, a normalizedcancer score of 4-6 indicates suspicious cells, and a normalized cancerscore of 7-10 indicates that cancer is present in particular region(s)of the image.

As shown in step 202, the method 200 may include receiving one or morepieces of medical information for processing and analysis. Theinformation may be received automatically using a networked system,delivered manually via CD-ROM, USB stick, or the like, entered manually,and the like. Those of skill in the art may recognize that there areother alternative methods of transmitting and receiving data for use inthe methods and systems described herein. The medical information mayinclude information about a patient's tissue, e.g., medical images ofthe tissue. The medical information may include preprocessed or rawdata, which is then processed and analyzed by the systems or methodsdescribed herein. In an aspect, the cancer score engine may include amedical information analysis component that receives one or more piecesof medical information, where the cancer score engine then processes andanalyzes this information. The medical information may be automaticallystreamed to the cancer score engine by an uneven length preprocessedtime series input. For example, the header of a DICOM file may containinformation on the image contained within it including, but not limitedto, the pixel resolution in physical units, criteria for interpretingthe pixel intensity, and so forth.

As shown in step 204, the method 200 may include analyzing the one ormore pieces of medical information about the tissue. This may includegathering variables values about the medical information (e.g., amammogram), where generating the indication of cancer may be based onthe gathered variable values. The variables may include an intensityvalue for contours of any calcifications, a gradient of thecalcifications, one or more characteristics about each calcification,and a hierarchical structure of the calcifications in a cluster.

As shown in step 206, the method 200 may include generating anindication of cancer. By way of example, the indication of cancer may begenerated for one or more regions of the tissue in the medical images.

As shown in step 208, the method 200 may include generating a cancerquantification score. By way of example, generating a cancerquantification score may include generating a cancer score for eachregion of the tissue based on the indication of cancer in each region ofthe tissue. The cancer quantification score may indicate an absence ofcancer in the region of the tissue.

As shown in step 210, the method 200 may optionally include generatingguidance for a medical professional based on one or more of theindication of cancer and the cancer quantification score. The guidancemay include, e.g., guidance for a radiologist based on the presence orabsence of cancer in the region of the tissue. The guidance may begenerated by applying rules based on the analysis of the medicalinformation, the indication of cancer, or the cancer quantificationscore.

Implementations may utilize one or more algorithms for detecting andquantifying cancer from medical information supplied to the system. Forexample, for detecting and quantifying breast cancer, the algorithm maydetect and quantify micro-calcifications in mammogram images. Thealgorithm may in general include (1) detecting and groupingcalcifications into clusters, (2) classifying types of benign clusters,(3) quantifying clusters that are potentially malignant with a ‘Qfactor’ as discussed herein, and (4) saving output quantities toevaluate performance. In an implementation, a first algorithm generatesan indication of cancer and a second algorithm generates a cancer score.

FIG. 3 is a flow chart of a method for detecting and quantifying cancer.The method 300 may be performed using one or more algorithms asdescribed herein, or with assistance from an algorithm. Thus, the method300 may be performed by a computer program product comprisingnon-transitory computer executable code embodied in a non-transitorycomputer readable medium that, when executing on one or more computingdevices, performs the steps of the method 300. The method 300 may ingeneral be performed on one or more pieces of medical information, e.g.,one or more images, for detecting an object, area, region, feature, datapoint, piece of information, etc., of interest (e.g., a calcification,lesion, mass, tumor, and the like in a medical image).

As shown in step 302, the method 300 may include initializing analgorithm. In this step 302, memory structures may be declared andvarious free parameters for a model may be set. In an aspect, theparameters and model choices are spread throughout code of a computingdevice. In another aspect, all model parameters are set in a singleplace during the initialization of the algorithm, along with a cleardescription of each parameter including the specific section of thecode/algorithm where it is utilized. This may be provided through aninteractive feature for a user, e.g., a graphical user interface of auser device. In this manner, the parameters may be adjusted or inputtedby a user of the method 300. In a non-interactive version, a piece ofmedical information may simply be received, e.g., a single image toanalyze.

As shown in step 304, the method 300 may include reading data. The datamay include a Digital Imaging and Communications in Medicine (DICOM)header and image data. The DICOM header may contain a range of usefulinformation including without limitation, the side (i.e., left orright), orientation, view, protocol, date of procedure, and so forth,many of which may be listed in a filename convention. This informationmay be extracted for use by the algorithm—for example, in order tocompare results from multiple views, or from a time series of images.Examples of DICOM tags include without limitation: (1) pixel spacing(e.g., hex tag—(0028×,0030×)), which may be useful to scale the image interms of real physical dimensions (e.g., mm), which can compute a ‘Qfactor’ consistently; (2) diagnostic vs screening (e.g., hextag—(0032×,1060×)), which may allow for inclusion or exclusion ofdiagnostic images from studies; and (3) patient orientation (e.g., hextag—(0020×,0020×)), which may allow for displaying the images in aconsistent manner, i.e., in the same orientation as used by radiologistsin typical computer-aided design (CAD) systems, which can beadvantageous when contour data is returned for display and/or analysis.For consistency in analysis, a predetermined orientation may be assigned(e.g., for mammograms—where the nipple points to the left in all imagesas is the industry standard). Alternatively, an orientation whereburned-in lettering is displayed/oriented correctly may be utilized.

The image data may be read in with η₁×η₂ elements and converted to a4-byte real array of intensities I(η₁, η₂) for contouring as a finalstep for reading data.

As shown in step 306, the method 300 may include computing contours forthe image. For this step 306, the intensity levels for contouring mayfirst be selected, where an example will now be described. Typically,the side and view information are burned into an image at 100% of themaximum possible intensity, while the intensity levels within tissue inthe image can be significantly less than this peak value. In order toscale the contours in a consistent manner, the maximum intensity scalemay be defined as I_(scale)=max[I(x₁, x₂)] within the tissue (i.e.,excluding the burned in region). By way of example, in an aspect, thefollowing set of contours may be selected:

I=(0.05, 0.075, 0.10, . . . →0.70)I _(scale)→27 levels,(0.71, 0.72,0.73, . . . →0.99)I _(scale)→29 levels,  (Eq. 1)

for a total of 56 levels. This set may provide a sufficient number ofcontours to work with most medical images. While contouring algorithmsmay return all contours within a given domain, here, an implementationmay only be interested in keeping a subset of contours that includecontours that are (a) closed and (b) where the contour value is largerthan the surrounding area outside. This may be the first contourselection criteria identified in method 300. For example, aftercontouring the image, the closed loops that are found can be of twopossible types:

(1) the contour value is larger than the surrounding values in the image(i.e. such contours enclose a bright spot, and potentialcalcifications); OR

(2) the contour value is below the surrounding values in the images(i.e., such contours enclose a darker region, which may be ruled out).

The algorithm may only select the subset of contours of the first type.

As shown in step 308, the method 300 may then analyze the data todetermine whether there are closed contours and/or whether the contourvalue is larger than the surrounding area outside. If contours do notmeet these criteria, then they may be discarded as explained below.

As shown in step 310, the method 300 may include discarding contoursthat do not meet desired criterion, e.g., contours that are not closed.

As shown in step 312, the method 300 may include analyzing the geometryand contrast of the contours, e.g., the closed contours that were notdiscarded by the previous step. Contouring an image (e.g., a mammogram)with the intensity levels provided above can result in 10⁵→10⁶ closedcontours, most of which do not correspond to clear structures ofinterest. To identify the contours that correspond to calcifications,masses, or external objects, the method 300 may evaluate the followinggeometric and contrast characteristics for each of the closed contourscomputed above, where each of the following are provided by way ofexample and not of limitation:

-   -   1. Centroid→x₁, x₂    -   2. Area→A    -   3. Perimeter→P=        |dλ

$\left. {4.{Circle}{Ratio}}\rightarrow C_{ratio} \right. = {{\left( \frac{A}{\pi} \right)^{1/2}\frac{2\pi}{P}} = \left. 0\rightarrow{1{for}a{perfect}{circle}} \right.}$

-   -   5. Intensity→I_(o) at the centroid location    -   6. Inward contrast→C_(in)=I_(o)/I where I is the contour value    -   7. Outward contrast→C_(out)=I_(o)/        I_(out)        where        I_(out)        is the average intensity outside the contour

$\left. {8.{Gradient}{scale}}\rightarrow L_{g}^{- 1} \right. = {\frac{1}{1P}❘{{\oint{❘{d\lambda \times {\nabla I}}❘}} \approx \frac{1}{1P}}❘{\oint{{❘{\nabla I}❘}d\lambda}}}$

-   -   9. Interior flag—ignore contours that are too close to the edge        of the tissue in the image.

As shown in step 314, the method 300 may include detecting an object,e.g., detecting an object in the image. The object may be an externalobject, or other regions where detection may be beneficial, e.g., forexclusion in an analysis by the algorithm. For example, an image mayinclude external objects, such as implants or diagnostic clamps. Also,some images may include regions with exceptionally poor contrast. Oftenthere are small scale contours within the interior of these regions,which can appear as calcifications to the algorithm, and thus triggerfalse positives. Thus, these regions may be detected and excluded fromconsideration. Thus, in an aspect, the algorithm can be configured tofind one or more such regions in each image, e.g., based on thefollowing contour selection criteria:

A≥800 mm² and I≥0.51_(scale) and C _(ratio)>0.22,  (Eq. 2)

corresponding to large bright regions with fairly smooth boundaries. Forimages that have objects, a number of contours may satisfy this criteriaand these will typically be nested inside one another. In order to findthe contour that best approximates the shape of the object, the contourthat maximizes the triple product AIC_(ratio) of these selectioncriteria may be selected. In most cases, finding the precise boundarymay not be necessary, since the method 300 may just be attempting toexclude the interior area where false positives can form. In someimages, false positives form just outside of the object, and thus abuffer region to exclude pixels immediately around the object may beadded.

As shown in step 316, the method 300 may then select contours fordiscarding (step 318) or keeping (step 320).

The contours may be the contours computed above, which are then searchedthrough for identifying potential calcifications or other features ofinterest. For breast cancer, the micro-calcifications of interesttypically occur for a fairly narrow range of sizes (contour areas).However, depending on a particular patient, as well as the type andstage of cancer, the micro-calcifications can feature a range of contourshapes, intensity levels, and contrasts (i.e., spatial gradients). Byway of example and not of limitation, the following selection can beused for most images:

1. Contours may be excluded that are within the interior of an objectidentified above in step 314. Also, contours may be excluded that arewithin a specified distance from the edge of the tissue or the edge ofthe image using the interior flag variable computed in step 312.

2. Contours may be included that are within the following range of areasand gradient scale:

0.003 mm² <A<800 mm² and L _(g)<1.3 mm,  (Eq. 3)

and that also meet one of the following criteria (a)-(e), which areprovided again by way of example:

(a) Contours may be kept that enclose relatively bright regions withrelatively desirable contrast values (these values may be selected by auser/administrator) and that are within a range of shapes that are nottoo highly deformed. This criteria may capture many of the most obviouscalcifications. For example, contours may be kept that satisfy thefollowing criteria:

I _(o)>0.67I _(scale) and C _(ratio)>0.65 and C _(in)>1.06 and C_(out)>1.22

(b) Contours may be kept that have relatively weak contrast if the areais within the correct range for the smaller (weak) calcifications, andif the contours are more nearly circular or have shorter gradientscales. For example, contours may be kept that satisfy the following:

A<0.30 mm² and [(C _(ratio)>0.80 and C _(in)>1.04) or (C _(ratio)>0.65and L _(g)<0.3 mm)]

(c) Contours may be kept that are relatively large and bright. Forexample, contours may be kept that satisfy the following:

(I _(o)>0.75I _(scale) and C _(ratio)>0.69 and A>1.2 mm²)or

(I _(o)>0.90I _(scale) and C _(ratio)>0.90 and A>4.0 mm²)

While these may be too large to be cancerous, these types of contoursmay be markers of type-2 benign clusters (e.g., fatty necrosis, etc.).These benign clusters may be ignored entirely in the analysis. However,the calcifications within these benign clusters may also have a range ofshapes and sizes, some of which overlap with the selection criteria in(a)-(b) above. Thus, the method 300 may find all of the members of thetype-2 clusters, and group their smaller members with these largershapes.

(d) Certain classes of contours may be kept that help reducefalse-positives. For example, contours may be kept that satisfy thefollowing:

(I _(o)>0.62I _(scale) and C _(ratio)>0.67 and C _(out)>2 and A>0.2mm²)or

(I _(o)>0.60I _(scale) and C _(ratio)>0.50 and 3 mm² >A>1.5 mm²)or

(L _(g)<0.4 mm and C _(ratio)>0.67 and 3 mm² >A>1.3 mm²)

Including these types of contours may allow the method 300 to reducesome common types of false-positives when contours are grouped intonested structures, as described below. For example, some largercalcifications are hollow in the center, resulting in a ring-likestructure. The choice in (a)-(b) often results in these rings beingbroken up into many smaller apparent calcifications. However, byincluding the contours that encompass the entire structure, these smallnested contours may be grouped with their outer parent, and thus allowthe algorithm to understand these as a single composite structure (andnot multiple distinct calcifications).

(e) Contours may be kept that include relatively high central intensity,even if the contrast is relatively poor. For example, contours may bekept that satisfy the following:

(I _(o)>0.90I _(scale) and C _(ratio)>0.50)

3. Full Contour Catalog. As shown in step 320, the method 300 mayinclude cataloging the contours, e.g., cataloging the contours that arekept by the steps listed above. This may include developing a fullcontour catalog. This may be accomplished by saving a pointer to anycontour that passes the above selection criteria. This may allow themethod 300 to easily refer back to the contour at any later stage,including all of the associated geometric and contrast propertiesdescribed above.

4. Order and Select. As shown in step 322, the method 300 may includedetermining whether to discard the contours, in which case the methodproceeds to step 324, or whether to order and select the contours, inwhich case the method proceeds to step 326. In many images, the numberof contours selected by (a)-(e) above into the full catalog is stillquite large ˜2×10⁴. The more contours that are kept can increase theoverall sensitivity, but can also lead to much longer analysis times infollowing steps of the method 300. Furthermore, keeping too manycontours at this phase may lead to more false-positives. For thesereasons, another selection process may be used that restricts the totalnumber of contours that are considered to a predetermined number, e.g.,N_(max)=6000. In any given image, the method 300 is typically lookingfor the contours with the best overall combination of intensity andcontrast, since these are the ones that are most apparent to a humaneye. However, the absolute value of the intensity and contrasts might bedifferent in various images, even for the same patient. Thus, thecontours in the primary library may be rank ordered based on thefollowing:

Selection Metric=4(C _(out)−1)+I/I _(o),

In this manner, the contours with the relative best combination ofcontrast and intensity may be found at the top of list. In essence, inan aspect, the method 300 is scoring the contours on a relative scalefor each image.

5. Primary Contour Catalog. As shown in step 326, the method 300 mayinclude cataloging the contours, e.g., into a primary contour catalog orthe like. This may be accomplished through saving a list of pointers tothe first N_(max)=6000 contours identified by the above ordering (orwhatever number is selected). This allows the method 300 to easily referback to the best contours, including all of the associated geometric andcontrast properties described above.

As shown in step 328, the method 300 may include grouping the contoursinto nested structures/hierarchies. After completing the selectionprocesses described above, there may only be N_(max)=6000 contoursstored within the primary catalog (or whatever number is selectedabove). However, in most images, only a small fraction of these contourswill correspond to true calcifications. Furthermore, as illustrated inFIGS. 4 and 5 described below, there may be at least several nestedcontours associated with each, and up to ten or more nested contours forcalcifications with a strong intensity contrast. For any givencalcification, it is desirous to identify a contour that characterizesthe shape of the structure. To accomplish this, the primary library maybe sorted through and the contours may be grouped into nestedhierarchical structures. The outer most contour (parent) in each nestedseries may correspond to the shape, while the inner nested contours(children) can be used to precisely measure variations in contrastacross the structure, as described below when selecting calcificationsfrom the nested contours.

For example, the N_(max) contours may be first sorted according to thearea enclosed by each. Next, starting with the largest contour (call toplevel the “parent”), the contour library may be searched to find thenext smallest contour in the list that exists inside the area enclosedby the top level (parent). This would be the first “child,” which may begrouped as part of this nested structure, and excludes from subsequentsearches below. Next, the library may be searched again to find the nextlargest contour that is inside the top level parent (this one will havea smaller area than the first child). Normally, in simply nestedstructures, this contour would also be inside the first child, but thatis not always the case. One could have multiple “peaks” inside theoverall parent contour, and this can be useful for looking at theinternal structure of masses. The library may be searched until no morecontours that are inside the top level parent. Then, the next largestcontour in the library, which has not yet been grouped, may be searchedto repeat this process.

After completing this step, there may be a list of the outer contoursfor each nested series, and a list of pointers to the inner nestedcontours for each of these structures. Some fraction of these nestedstructures may correspond to calcifications, but others may not. Inorder to aid in a final selection, the following properties for eachnested series may be computed, which are provided by way of example andnot of limitation:

1. Contour Derivatives—To identify calcifications, it may be desirous toprecisely characterize how rapidly the intensity varies across thestructure. Already, the method 300 may have computed several quantitiesthat characterize this same general idea in an average sense (i.e., theinner C_(in) and outer C_(out) contrast described above) and for a localgradient scale—L_(g). Once the contours are grouped into nestedstructures, the method 300 may compute the fractional change in areaand/or intensity between any two nested contours in the structure. Aftertrying a range of possibilities, the following two parameters may bedefined:

$\begin{matrix}{{\delta A} = {{\left( \frac{A_{i} - A_{i} + 1}{A_{i}} \right)_{\min}\delta I} = \frac{\max\left( I_{i} \right)}{I_{1}}}} & \left( {{Eq}.4} \right)\end{matrix}$

where the nested contours may be indexed from i=1→

, with i=1 corresponding to the outer contour and

the innermost. Here, δA may be the minimum fractional area changebetween any two nested contours in the structure, and δI corresponds tomaximum fractional intensity change between the inner nested contoursand the outermost contour that defines the shape. Small values of δA<<1may correspond to tightly nested contours, where the local gradient inintensity is large, while values of δI>1 measures the fractionalintensity variation across the set of nested contours (very similar tothe inner contrast C_(in) discussed above).

2. Grouping Parameter. As will be discussed below with reference togrouping the contours into nested structures, one can accuratelyidentify most of the clear calcifications using simple thresholds on δAand δI. However, a reasonable threshold on these parameters may oftenmiss weaker calcifications and/or in some cases entire clusters if thecalcifications are less distinct. Furthermore, if one lowers thethresholds to capture these missing clusters, it may result in anunacceptable increase in false-positives in other images. The basicproblem may include the following: if these weaker calcifications arejudged purely by themselves, it may often be unclear (even to the humaneye) whether they are truly a calcification or not. However, theseweaker structures are often far more interesting if they are groupedtogether, with the right size and right spatial separation. To put thisidea into practice, a new collective parameter that characterizes thesegroupings may be used. To proceed, each of the nested structuresidentified in as a potential calcification may be viewed and thefollowing parameter for the ith structure may be evaluated:

$\begin{matrix}{{dQ_{i}} = {\sum\limits_{j \neq i}^{M}{q_{i}q_{j}{F\left( {r_{\min},r_{\max},r_{ij}} \right)}}}} & \left( {{Eq}.5} \right)\end{matrix}$

where the summation is over the M other nested structures in the image,r_(ij) is the separation distance, and q_(i), q_(j) are statisticalweights defined by:

q _(i)=(I _(oi) /I _(scale))min[

,

]F(a _(min) ,a _(max) ,A _(i))  (Eq. 6)

where I_(oi) is the central intensity, A_(i) is the area of the ithcalcification,

is the number of nested contours, and

is a limit placed on the importance of nesting in the weight. Finally,the following selection function may be defined:

F(c _(max) ,c _(min) ,x)=C _(norm) cxp└−(x/c _(max))²┘(1−cxp└−(x/c_(min))²┘)  (Eq. 7)

where C_(norm)=(1+ξ)^((1+ξ))/ξ^(ξ) is a normalization constant(ξ=(c_(min)/c_(max))²), and C_(min), c_(max) are constants that set theminimum and maximum scales of interest for any given quantity. Forexample, in Eq. 5 the selection function is applied to spatialseparation, and the constants (r_(min), r_(max)) are used to select arelevant range of separations. The function F may be constructed toreach a maximum value of unity between this range of scales, and then tofall off exponentially for separations outside this specified range.Likewise, when applied to Eq. 6, the selection function may maximizewithin the specified range of areas (a_(min), a_(max)) and fall offrapidly outside this range. Thus, dQ_(i) may have desired properties. Inthe absence of neighbors (i.e., within a few r_(max)), the value ofdQ_(i) may remain small. However, the value of dQ_(i) may increasequadratically with the number of neighbors, if they are within the rightrange of separations, and have the right range of sizes to be ofconcern. Furthermore, the value may increase with the central intensityof the potential calcifications, and with the number of nested contourswithin each, both of which may correlate with visibility to the humaneye.

As shown in step 330, the method 300 may include selectingcalcifications from the nested contours, where, if the calcificationsare not selected the method 300 discards the calcifications as shown bystep 332, and where, if the calcifications are selected, the method 300proceeds to step 334.

At this point in the method 300, all contours may have been found andcharacterized, contours may have been eliminated that occur insideobjects, the most interesting contours may have been selected, and thecontours may have been grouped into nested structures, with theoutermost contour representing the shape and the inner contoursproviding additional information on the internal gradients. The finalselection for calcifications may be made based on the following twocriteria, which are provided by way of example and not of limitation:

1. Strong Calcifications→δA/δI<0.15

This threshold on the contour derivate (see Eq. 4) may capture most ofthe clear calcifications with sharp boundaries. This selection may bemade regardless of whether the calcification has any close neighbors.

2. Weaker Grouped Calcifications→δQ_(i)<3

This threshold on the grouping parameter (see Eq. 5) may select weakercalcifications that are grouped together appropriately (as discussedabove). Note that the threshold value of δQ_(i) may be dependent on thescaling parameters chosen in Eqs. 5-7. Ultimately, it may be desirablefor these choices to be consistent with the scaling parameters chosenbelow, which are used to compute a ‘Q score’ for each cluster.

As shown in step 334, the method 300 may include grouping calcificationsinto clusters. After identifying all calcifications within the image,next, they may be grouped into clusters according to the followingprocedure. A spatial cluster scale (e.g., R_(c)=7 mm) may be defined,and for each calcification the number of neighbors within this range iscounted. In addition, a minimum number of calcifications to consider asa cluster (e.g., N_(min)=3) may be specified. Next, the method 300 maystart with the calcification with the largest number of neighbors, whichis used to form the first cluster. New calcifications may be recursivelyadded to this cluster, until there are no remaining calcificationswithin a distance R_(c) of any member. After finding all members offirst cluster, the method 300 may proceed to the next unassignedcalcification and repeat this process until all calcifications thatshould be grouped into a cluster have been assigned. In an aspect, onlycalcifications with at least two neighbors (i.e., three members) aregrouped into clusters. Calcifications that are not assigned to a clustermay be ignored completely for the rest of the method 300.

This approach for forming clusters may be advantageous, and may dependonly on the scale R_(c). In most images, the actual clusters in thetissue (e.g., breast) are well separated, and this approach works well.However, in images with many vascular clusters and/or other types ofbenign calcifications, it may become difficult to separate out new(potentially cancerous) clusters from the pre-existing background ofbenign clusters. Indeed, the cancer may appear next to a vascularcluster. In this case, the clustering approach may group the new cancertogether with the vascular, which may result in misclassification, whereprevention/accounting for this is discussed below.

As shown in step 336, the method 300 may include computing clusterproperties. To aid in the classification process, it may be useful tocharacterize the distribution of calcifications within the cluster. Ifthe centroid is identified for a calcification by the ordered pair (x₁,x₂), then the cluster centroid can be defined as:

$\begin{matrix}{{\overset{\_}{x_{i}} = {{\frac{1}{W}{\underset{n = 1}{\sum\limits^{N_{c}}}{w_{n}x_{i}W}}} \equiv {\frac{1}{W}{\sum\limits_{n = 1}^{N_{c}}w_{n}}}}},} & \left( {{Eq}.8} \right)\end{matrix}$

where w_(n) is the weight for the nth calcification and N_(c) is thenumber of calcifications within the cluster. In an aspect, the outwardcontrast of each calcification for the weights w_(n)=C_(out) is used.Next, a displacement matrix for each cluster may be defined:

$\begin{matrix}{{D_{ij} = {\frac{1}{W}{\underset{n = 1}{\sum\limits^{N_{c}}}{{w_{n}\left( {x_{i} - \overset{\_}{x_{i}}} \right)}\left( {x_{j} - \overset{\_}{x_{j}}} \right)}}}},} & \left( {{Eq}.9} \right)\end{matrix}$

where again the contrasts for the weights may be employed. Thissymmetric positive-definite matrix may have two real eigenvalues (e₁,e₂) and two eigenvectors (d₁, d₂), which can be used to define thefollowing quantities, which are provided by way of example and not oflimitation:

1. Cluster Half-Length→L−√{square root over (e₁)}, where e₁ is themaximum eigenvalue of D_(ij)

2. Cluster Half-Width→w=√{square root over (e₂)}, where e₂ is themaximum eigenvalue of D_(ij)

3. Aspect Ratio→A=w/L

4. Principal Axis→d₁ vector aligned with long direction in the cluster

$\left. {5.{Packing}{Fraction}}\rightarrow P_{f} \right. = {\frac{\sum_{i}A_{i}}{4{Lw}} - {\left( {{area}{inside}{calcifications}} \right)/\left( {{approximate}{cluster}{area}} \right)}}$

For each cluster, the method 300 may also compute the mean and standarddeviation of the geometric and contrast properties described above,including, e.g., intensity, contrast, area, and so forth.

As shown in step 338, the method 300 may include classifying clusters asbenign, in which the method 300 proceeds to step 340, or classifyingclusters as possible cancer or cancerous in which the method proceeds tostep 342.

Calcifications may form within tissue over a wide range of scales andfor a variety of reasons. Calcifications may be of benign origin, orclusters of micro-calcifications may be indicative of cancer. Typically,benign calcifications are more common. Thus, when used as a screeningtool, the large majority of clusters identified by the method 300 areexpected to be of benign origin. The strategy of the method 300 may thusbe to identify and exclude the most common types of benign clusters, andthen to score the remaining clusters with the ‘Q factor’ as describedbelow.

If the clusters are classified as benign, the method 300 may classify atype for each the cluster/calcification, which is illustrated by step340. Some types of benign clusters are provided below by way of exampleand not of limitation.

Type-1: Vascular

A common type of benign cluster is associated with vascularcalcifications. While these are of potential interest in studies ofcardiovascular disease, these clusters may not be relevant to cancer(e.g., breast cancer). However, if vascular calcifications are presentwithin a given image, the method 300 may identify a large number ofcalcifications organized along the vessel wall. Unfortunately, the rangeof spatial scales and separation distances for these vascularcalcifications often overlaps with the micro-calcifications relevant tocancer (e.g., breast cancer). Thus, one often cannot differentiate basedon the Q factor discussed below. Instead, other approaches to excludethese from consideration may be utilized.

Vascular calcifications are usually easy to spot visually, since theyare well-organized along the wall of the tubular vessel. As such, atleast two strategies may be used to automatically identify thesevascular calcifications, i.e., using an algorithm or the like. First,the high-degree of spatial correlation can be measured, e.g., byperforming a regression analysis on the positions of the calcifications.An alternative and potentially complementary approach is to employ edgedetection techniques to identify the vessel walls, and then to excludecalcifications that are located along these structures.

In an aspect, the approach is based on performing a regression analysisto a polynomial of specified order. The steps in this vascular detectionsubroutine may include without limitation:

1. Only accepting clusters having between a certain number of members(e.g., between 3 and 500 members). Depending on the number of members,there may be a look-up table to specify (1) the order of the polynomial,(2) the threshold tolerance in the fit, and (3) the number of pointsthat can be dropped. This may allow a higher-order fit and/or slightlylarger tolerances for clusters with more members. In an aspect, onlyfirst order (linear) and second order polynomials are used, and thetolerance allowed varies from a range of values, e.g., 0.01 to 0.036.These tolerances may correspond to a normalized chi-squared of the fit(i.e., normalized to the length of the polynomial curve).

2. Next, the cluster may be rotated into a frame where the x-axis isaligned with the principal axis of the cluster computed above. Apolynomial least-squares regression may be performed, and thechi-squared fit parameter can be computed and normalized by the lengthof the curve. If the fit is within tolerance, the cluster may beidentified as vascular (type-1), otherwise the specified number ofoutlier points may be dropped, and the fit may be recomputed to see ifthe method 300 can find one within the tolerance specification.

3. For large vascular clusters, it may be difficult to fit with asecond-order polynomial, especially if the cluster has multipletree-like branches, or many outlier contours that are not well-alignedalong the tubular structure. Thus, for large clusters the method 300 mayattempt to split them into smaller subgroups, and then apply thepolynomial fitting procedure to the subgroups. In an aspect, the method300 has two different strategies for splitting and fitting, and thealgorithm is set to employ one or both of these (i.e., apply the secondif the first fails). If the routine finds any portion of the clusterthat is well fit by ‘q polynomial,’ then the entire cluster may beclassified as vascular.

4. Even with the above variations, it may be difficult to pick atolerance for the fitting threshold that identifies all of the vascularclusters, while excluding ones that are potentially malignant. Thus, themethod 300 may include a final check that applies to clusters that havea fitting tolerance somewhat above the threshold (and thus would not beidentified as type-1), but where the principal axis aligns with a clearvascular cluster. Often a series of vascular clusters will form alongthe same vessel, or along a neighboring vessel. As a result, theprincipal axes of these two clusters may be well-aligned, they may be inthe same proximity, and they often have a high aspect ratio (see clusterproperties described above in step 336). Thus, by introducing a finalcheck on these other factors, the method 300 may be able to identify andexclude additional vascular clusters.

Type-2: Large Calcifications and Fatty Necrosis

Another common type of benign clusters is associated with largercalcifications and fatty necrosis. These clusters may include largermembers, with areas that may be significantly larger thanmicro-calcifications associated with malignancy. For clusters comprisedentirely of larger calcifications, the ‘Q score’ described below may berelatively small. However, in other cases, there may be an overlap inthe relevant range of areas with malignant clusters. Furthermore, themethod 300 may find a number of smaller structures in the vicinity ofthe larger calcifications, which can then give rise to false-positivesas described below.

In terms of geometric properties, these benign clusters may becharacterized by relatively larger areas and by their fairly densegrouping. To this end, a cluster library may be created in which thegeometric and contrast properties described above are extracted forinteresting clusters for use and evaluation by the method 300. Thecluster library may show that malignant clusters tend to be moredispersed (lower P_(f)) with a smaller range of areas, while the benignclusters are more densely packed (larger P_(f)) and/or larger areas. Anapproximate threshold curve to identify type-2 clusters may be providedas a line such as:

P _(f)=0.85−0.6<A _(i) >A _(max),  (Eq. 10)

where <A_(i)> is the average area of the calcifications within thecluster, A_(max) is the area of the largest calcification in thecluster, and P_(f) is the packing fraction (see description above). In an aspect, this criteria is used to identify and exclude these benignclusters. While this may lead to some misclassifications, it may notgreatly impact scoring metrics, since the malignant clusters are oftencorrectly identified in other images/views, and for the rare times theyare misclassified, this only occurs in one of the images/views. Inanother aspect, active contouring techniques are used to remedymisclassifications.

Type-3: Diffuse Round Calcifications

Another type of false-positive may be clusters that are characterized bydiffuse, nearly circular calcifications. These are often fairly brightand have relatively good contrast, and thus many calcifications areoften identified. The range of calcification sizes may be relativelysimilar to malignant micro-calcifications, but they tend to be spreadover broader areas of the tissue (e.g., breast tissue), and also theymay often appear on both sides in a similar manner. A technique foridentifying these clusters uses the C_(ratio) and P_(f). Anothertechnique may compare different sides of an image, e.g., comparing theleft and right sides.

As shown in step 342, the method 300 may include quantifying clusterswith a ‘Q score.’ The Q score as discussed herein may refer to ameasurement, e.g., a number that quantifies the likelihood of malignancyfor each cluster.

The Q score may include an analytic function of the geometric andcontrast properties of the calcifications within each cluster, as wellas their detailed spatial arrangements. The Q score may quantify aspectsof the calcifications more quickly, accurately, and consistently than ispossible for a human. In comparison to the black box approach of aneural net, the Q score enables a clear explanation in physical termsabout how the method 300 is scoring any given cluster.

Some features built into the functional form for the Q score havealready been discussed above in association with the grouping parameterdQ_(i). It is well-established that clusters of micro-calcificationsassociated with cancer occur for a fairly limited range of spatialscales and separation distances. As the cancer develops from an earlyphase, the number of visible micro-calcifications will increase, alongwith the intensity and contrast of each visible calcification. To thisend, the function may increase monotonically with these features, andallow sufficient flexibility to adjust free scaling parameters in orderto optimize the overall performance. An example of this function is:

$\begin{matrix}{{Q = {\left( \frac{M_{o}}{M_{o} + M} \right){\sum\limits_{i = 1}^{M}{\sum\limits_{j = {i + 1}}^{M}{q_{i}q_{j}{F\left( {r_{\min},r_{\max},r_{ij}} \right)}}}}}},{= {\left( \frac{M_{o}}{M_{o} + M} \right){\sum\limits_{i = 1}^{M}{dQ}_{i}}}},} & \left( {{Eq}.11} \right)\end{matrix}$

where M_(o) is a free parameter, M is the number of calcifications inthe clusters, and all other symbols have been defined herein. The Qparameter may be roughly analogous to a potential energy or the like forthe cluster (assuming a particular form for the pair-wise interactions),where the free scaling parameters have been adjusted to maximize theenergy for malignant clusters. Aside from a normalization factor, the Qparameter defined in Eq. 11 may be a sum over the clustering parameterfor each calcification (see Eq. 5). From this point of view, theapproach for selecting calcifications may be connected with the overallstrategy for scoring the significance of the final clusters.

To determine the free scaling parameters, a program performing amulti-dimensional optimization may be used in order to find values thatmaximize the area under the curve (“auc”) for the receiver operatingcharacteristic (ROC) curve. Example values for these parameters are asfollows: a_(min)=0.054 mm², a_(max)=0.42 mm², r_(min), =0.0 mm,r_(max)=2.69 mm,

=5, M_(o)=10.

As shown in step 344, the method 300 may include saving results. Forexample, after completing the analysis for each image, the followingresults may be saved, which are provided by way of example and not oflimitation:

1. List of clusters identified in the image, including the Q score andthe cluster properties;

2. Outer contours for each of the calcifications within each cluster,along with the geometric and contrast properties for each of theseshapes; and

3. Information to generate the ROC curves. This information may beextracted and saved along with the Q score for each cluster.

It will be understood that any values recited above with respect to themethod 300 (or otherwise herein) are provided by way of example only,and are not meant to limit the embodiments described herein. Thesevalues may also or instead include predetermined (e.g., “best practice”)values, e.g., discovered through a trial and error process. These valuesmay be varied by a user or administrator, e.g., using a graphical userinterface that includes fields for inputting the values.

FIG. 4 depicts a medical image of calcifications in a patient's tissue.The image 400 in the figure may represent an original medical image of apatient's tissue, e.g., a mammogram or the like. The image 400 mayinclude calcifications 402, which may need to be identified fordetecting whether cancer is present. In other words, the image 400 maybe used in the devices, systems, and methods described herein fordetecting and quantifying cancer in a patient's tissue shown therein.

FIG. 5 illustrates an example of a selection process for a malignantcluster of micro-calcifications. Specifically, the figure includes afirst image 510 and a second image 520. The first image 510 mayrepresent the contours 512 selected by any of the criteria outlinedabove. More specifically, these may be the contours 512 before they aregrouped into nested hierarchies. The calcifications most noticeable tothe human eye may have many nested contours 512, which are groupedtogether into nested structures as described above (these nestedstructures are shown, for example by the bubbled area 514 in thefigure). These internal nested contours 512 may be used to evaluategradients in the intensity across the structure (see δA and δIparameters defined in the equation above), and the parameter dQ_(i) maybe used to characterize the groupings (as explained above). The finalcalcifications 522 shown in the second image 520 may be selectedaccording to the criteria described above with respect to step 330 ofthe method 300. Specifically, the second image 520 shows the outerboundaries of these final selected calcifications 522.

FIG. 6 illustrates an example of the identification of a cluster ofcalcifications. For example, the figure shows the identification oftype-2 clusters with fatty necrosis using techniques described herein.The figure includes a first image 610 and a second image 620. The firstimage 610 shows an original medical image of tissue without any overlaidcontours. The second image 612 shows contours 622 identified by thetechniques described herein, e.g., the method described with referenceto FIG. 3 , which may utilize one or more algorithms.

FIG. 7 is a graph showing an example of a packing fraction as a functionof <A_(i)>A_(max) for exemplary clusters. Specifically, in the graph700, the x-axis is the <A_(i)>A_(max), where <A_(i)> is the average areaof the calcifications within the cluster and A_(max) is the area of thelargest calcification in the cluster. In the graph 700, the y-axis isthe P_(f), i.e., the packing fraction (see discussion above).

In the graph 700, the lighter lineweight points 702 correspond tomalignant clusters, while the heavier lineweight points 704 correspondto various type-2 clusters. In this specific graph 700, only clusterswith less than 30 calcifications are included for clarity and by way ofexample, but clusters with more calcifications may also or instead beused. An approximate boundary separating the benign from malignantclusters is given by the line 706.

In general, the figure may represent the derivation of criteria foridentifying type-2 clusters that are used in the techniques describedherein, where each point in the graph 700 corresponds to a singlecluster in an exemplary study, which was used to refine the techniquesdescribed herein. The results show that malignant clusters tend to bemore dispersed (lower P_(f)) with a smaller range of areas, while thebenign clusters are more densely packed (larger P_(f)) and/or largerareas. An approximate threshold curve to identify type-2 clusters may beprovided by the line 706, which may take the form:

P _(f)=0.85−0.6<A _(i) >A _(max)

In an implementation, this is the criteria used to identify and excludebenign clusters. As shown in the graph 700, the malignant points to theright of the line 706 may be misclassified as benign type-2. While thismay be undesirable, it also may not impact the scoring metrics describedherein, as discussed above. As further shown, it appears that the outerboundaries corresponding to the calcifications may be too large and/orencompasses multiple smaller calcifications. This may cause the measuredareas to be larger than they should be, and thus may move the clusterinto the benign region of the parameters space in the figure. This canbe improved upon by utilizing advancements in the contouring techniques,e.g., active contouring techniques.

As discussed herein, an implementation may include a method fordetermining a cancer score. Determining a cancer score may beaccomplished through the user of a cancer score engine (and itscomponents) or the like as described herein. In the method, an event ofinterest may be defined. An event of interest may be any object ofinterest to be identified from data. Examples of events may be cancerouslesions, masses, physiological anomalies, and the like. The method maygather variables for the events of interest, such as x1, x2 . . . xn.The variables may be a minimum number of variables that allow the eventto be predicted and a score to be generated, e.g., a cancer score. Thevariables may be gathered by identifying a number of variables and thendiscarding variables that are not predictive and/or show the wrongbehavior for the event of interest. In one implementation, the event ofinterest may be breast cancer and the variables may include closedintensity contours of calcifications in mammogram images, gradients ofthe calcifications, one or more characteristics about eachcalcification, such as perimeter, contrast and/or a number of neighbors,a texture and shape of each calcification and/or a hierarchicalstructure of the calcifications in a cluster, such as how tightly thecalcifications are nested, if there are nested levels of calcificationsand the like. The variables for mammogram images may also or insteadinclude other variables. This method may also include a clustering ofindividual calcifications with their neighbors and then grouping intoprototype clusters which may be ordered based on a number of neighbors.In the breast cancer example, the values of these variables may bedetermined by the computer analysis of the mammogram images.

The method may calculate a Q0 based on the values of the variables,where Q0 is an analytical function of the variables so that Q0=F(x1, x2,. . . , xn). Thus, in the breast cancer implementation, the method maycalculate Q0 for each cluster of calcifications in which Q0 is afunction of the variables calculated over each cluster. For example, Q0may include use of any of the functions described herein.

The method may calculate a Q1, where Q1 is equal to (Q0)×(a penaltyfunction). The penalty function may selected be such that Q1incorporates a classification scheme. In the breast cancerimplementation, the penalty function may discard calcifications that arespaced too far apart and thus are unlikely to be suspicious cells. Themethod may then normalize Q1 to generate a cancer score. During thenormalization, the parameters of Q0 and Q1 may be optimized to maximizethe area under a well-known (ROC) or free receiver operatingcharacteristic (FROC) curve. By way of example, the FROC curves aredescribed in Bornefalk et al., “On the Comparison of FROC curves inMammography CAD Systems”, Med. Phys. 32, pp. 412-17 (2005), which ishereby incorporated by reference in its entirety. Thus, based on theabove curves, the cancer score may have thresholds and classify theclusters of calcifications into Type-1, Type-2 and Type-3, where Type-1identifies a linear or curvilinear cluster (benign lesion), Type-2identifies a cluster that has one or more calcification members that areexceptionally large and/or bright in the mammogram image, and Type-3identifies a cluster that is likely malignant. The method may displaythe cancer score in some form. For example, as shown in figures includedherein of medical images, a cluster of calcifications may be classifiedas cancerous thereby warranting a biopsy.

FIG. 8 is a flow chart of a method for cancer detection andquantification.

As shown in step 802, the method 800 may include receiving a medicalimage, e.g., through a communications interface of a computing deviceover a data network. The medical image may include one or more of anx-ray image, a computerized tomography (CT) scan, a magnetic resonance(MRI) image, and an ultrasound image. One or more of the steps of themethod 800 may be completed by a processor or the like, e.g., aprocessor executing code embodied in a non-transitory computer readablemedium. The processor may be included as part of a computing device uponwhich the medical image is received.

As shown in step 804, the method 800 may include extracting tagged datafrom the medical image, e.g., where the medical image is included in acomputer file. The tagged data may include one or more of a side, apixel spacing, an orientation, a protocol, and a date. The tagged datamay be included in a Digital Imaging and Communications in Medicine(DICOM) header. The tagged data may include metadata, data shown on animage (e.g., stamped on the image), or the like.

As shown in step 806, the method 800 may include detecting an object inthe image for exclusion from further analysis. The object may be anexternal object. The object may be detected through the object having atleast one of: an area greater than a predetermined area, an intensitygreater than a predetermined intensity, and a circle ratio greater thana predetermined circle ratio.

As shown in step 808, the method 800 may include converting the medicalimage to a 4-byte real array of intensities for contouring.

As shown in step 810, the method 800 may include selecting intensitylevels for determining contours in the medical image.

As shown in step 812, the method 800 may include analyzing the medicalimage to determine a first subset of contours in the medical imagesatisfying one or more criterion. The one or more criterion may includethat each contour in the first subset of contours is (i) closed and (ii)includes a contour value larger than a surrounding area external to thecontour. In an aspect, contours not satisfying the one or more criterionare discarded.

As shown in step 814, the method 800 may include analyzing one or moregeometric attributes and one or more contrast attributes of contoursincluded in the first subset of contours to identify a second subset ofcontours based upon contours satisfying one or more predeterminedgeometric and contrast attributes. The one or more geometric attributesof contours may include at least one of: a centroid, an area, aperimeter, a circle ratio, and an interior flag. The one or morecontrast attributes of contours may include at least one of anintensity, an inward contrast, an outward contrast, and a gradientscale.

As shown in step 816, the method 800 may include selecting a thirdsubset of contours from the second subset of contours that correspondsto potential calcifications. The third subset of contours may beselected based on contours within the second subset satisfying firstcalcification criteria. Selecting the third subset of contours mayinclude excluding contours located within a predetermined distance fromat least one of an edge of the medical image and an edge of tissue.

The first calcification criteria may include contours having apredetermined area and a predetermined gradient scale. The predeterminedarea may be between about 0.003 mm² and about 800 mm², and thepredetermined gradient scale may be less than about 1.3 mm. The firstcalcification criteria may also or instead include contours having apredetermined intensity, a predetermined circle ratio, a predeterminedinward contrast, and a predetermined outward contrast. The predeterminedintensity may be greater than about 0.67 times a maximum intensity, thepredetermined circle ratio may be greater than about 0.65, thepredetermined inward contrast may be greater than about 1.06, and thepredetermined outward contrast may be greater than about 1.22. The firstcalcification criteria may also or instead include contours having apredetermined area, a predetermined circle ratio, and at least one of apredetermined inward contrast and a predetermined gradient scale. Thepredetermined area may be less than about 0.30 mm², the predeterminedcircle ratio may be greater than about 0.65, the predetermined inwardcontrast may be greater than about 1.04, and the predetermined gradientscale may be greater than about 0.3 mm. The first calcification criteriamay also or instead include contours having a predetermined area, apredetermined circle ratio, and a predetermined intensity.

As shown in step 818, the method 800 may include saving the third subsetof contours, e.g., in a memory of the computing device.

As shown in step 820, the method 800 may include ranking contoursincluded in the third subset of contours based on a selection metric.The selection metric may account for a combination of contrast andintensity.

As shown in step 822, the method 800 may include grouping contoursincluded in the third subset of contours into nested structures.

As shown in step 824, the method 800 may include identifying outercontours in each nested structure representing a contour shape and innercontours in each nested structure providing data on internal gradients.

As shown in step 826, the method 800 may include identifyingcalcifications for each nested structure based on at least one of: acontour derivative and a grouping parameter computed for each nestedstructure. The contour derivative may measure how rapidly intensityvaries across a nested structure.

As shown in step 828, the method 800 may include selectingcalcifications from the nested structures satisfying secondcalcification criteria. The second calcification criteria may include athreshold on a contour derivate and a threshold on a grouping parameter.

As shown in step 830, the method 800 may include grouping the selectedcalcifications into clusters, e.g., based on one or more of neighboringcalcifications and a spatial cluster scale.

As shown in step 832, the method 800 may include computing clusterproperties with the processor. The cluster properties may include one ormore of a cluster centroid, a cluster half-length, a cluster half-width,an aspect ratio, a principal axis, and a packing fraction.

As shown in step 834, the method 800 may include classifying theclusters as benign or possible cancer by performing one or more of: aregression analysis on calcifications within the clusters, edgedetection, a density analysis of the clusters, and a circularityanalysis of the clusters.

As shown in step 836, the method 800 may include scoring the clustersusing an analytic function of geometric and contrast properties of thecalcifications within each cluster, and spatial arrangements of thecalcifications within each cluster.

In an aspect, a computer program product may include non-transitorycomputer executable code embodied in a non-transitory computer readablemedium that, when executing on one or more computing devices, performsthe steps of: receiving a medical image through a communicationsinterface of a computing device over a data network; analyzing themedical image to determine a first subset of contours in the medicalimage satisfying one or more criterion; analyzing one or more geometricattributes and one or more contrast attributes of contours included inthe first subset of contours to identify a second subset of contoursbased upon contours satisfying one or more predetermined geometric andcontrast attributes; selecting a third subset of contours from thesecond subset of contours that corresponds to potential calcifications,the third subset selected based on contours within the second subsetsatisfying first calcification criteria; ranking contours included inthe third subset of contours based on a selection metric, the selectionmetric accounting for a combination of contrast and intensity; groupingthe contours included in the third subset of contours into nestedstructures; selecting calcifications from the nested structuressatisfying second calcification criteria; grouping the selectedcalcifications into clusters based on one or more of neighboringcalcifications and a spatial cluster scale; classifying the clusters asbenign or possible cancer by performing one or more of: a regressionanalysis on calcifications within the clusters, edge detection, adensity analysis of the clusters, and a circularity analysis of theclusters; and scoring the clusters using an analytic function of:geometric and contrast properties of the calcifications within eachcluster, and spatial arrangements of the calcifications within eachcluster.

In an aspect, a system may include a computing device including anetwork interface for communications over a data network, and a cancerscore engine having a processor and a memory. The cancer score enginemay include a network interface for communications over the datanetwork. The cancer score engine may be configured to receive a medicalimage from the computing device. The memory may be configured to storethe medical image. The processor may be configured to analyze themedical image, generate a cancer score for the medical image, andtransmit the cancer score to the computing device for display on a userinterface thereof. Analysis of the medical image may include:determining a first subset of contours in the medical image satisfyingone or more criterion; analyzing one or more geometric attributes andone or more contrast attributes of contours included in the first subsetof contours to identify a second subset of contours based upon contourssatisfying one or more predetermined geometric and contrast attributes;selecting a third subset of contours from the second subset of contoursthat corresponds to potential calcifications, the third subset selectedbased on contours within the second subset satisfying firstcalcification criteria; ranking contours included in the third subset ofcontours based on a selection metric, the selection metric accountingfor a combination of contrast and intensity; grouping the contoursincluded in the third subset of contours into nested structures;selecting calcifications from the nested structures satisfying secondcalcification criteria; grouping the selected calcifications intoclusters based on one or more of neighboring calcifications and aspatial cluster scale; classifying the clusters as benign or possiblecancer by performing one or more of a regression analysis oncalcifications within the clusters, edge detection, a density analysisof the clusters, and a circularity analysis of the clusters; and scoringthe clusters using an analytic function to generate the cancer score.

In an aspect, a computer-implemented method may include: receiving oneor more pieces of medical information for processing and analysis on acomputing device, the one or more pieces of medical informationincluding a medical image of tissue; analyzing, with a processor of thecomputing device, a region of the medical image to determine a presenceof one or more contours in the region; extracting, with the processor,one or more properties of the one or more contours; inputting, with theprocessor, the one or more properties into a first algorithm todetermine an indication of cancer for the region; inputting, with theprocessor, the indication of cancer into a second algorithm to generatea cancer score for the region; and generating the cancer score for theregion.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the disclosure to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings.

The systems and methods disclosed herein may be implemented via one ormore components, systems, servers, appliances, other subcomponents, ordistributed between such elements. When implemented as a system, suchsystems may include an/or involve, inter alia, components such assoftware modules, general-purpose CPU, RAM, etc., found ingeneral-purpose computers. In implementations where the innovationsreside on a server, such a server may include or involve components suchas CPU, RAM, etc., such as those found in general-purpose computers.

Additionally, the systems and methods herein may be achieved viaimplementations with disparate or entirely different software, hardwareand/or firmware components, beyond that set forth above. With regard tosuch other components (e.g., software, processing components, etc.)and/or computer-readable media associated with or embodying the presentimplementations, for example, aspects of the innovations herein may beimplemented consistent with numerous general purpose or special purposecomputing systems or configurations. Various exemplary computingsystems, environments, and/or configurations that may be suitable foruse with the innovations herein may include, but are not limited to:software or other components within or embodied on personal computers,servers or server computing devices such as routing/connectivitycomponents, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, set top boxes, consumer electronicdevices, network PCs, other existing computer platforms, distributedcomputing environments that include one or more of the above systems ordevices, etc.

In some instances, aspects of the systems and methods may be achievedvia or performed by logic and/or logic instructions including programmodules, executed in association with such components or circuitry, forexample. In general, program modules may include routines, programs,objects, components, data structures, etc., that perform particulartasks or implement particular instructions herein. The embodiments mayalso be practiced in the context of distributed software, computer, orcircuit settings where circuitry is connected via communication buses,circuitry or links. In distributed settings, control/instructions mayoccur from both local and remote computer storage media including memorystorage devices.

The software, circuitry and components herein may also include and/orutilize one or more type of computer readable media. Computer readablemedia can be any available media that is resident on, associable with,or can be accessed by such circuits and/or computing components. By wayof example, and not limitation, computer readable media may comprisecomputer storage media and communication media. Computer storage mediaincludes volatile and nonvolatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer readable instructions, data structures, program modules orother data. Computer storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and can accessed bycomputing component. Communication media may comprise computer readableinstructions, data structures, program modules and/or other components.Further, communication media may include wired media such as a wirednetwork or direct-wired connection, where media of any type herein doesnot include transitory media. Combinations of the any of the above arealso included within the scope of computer readable media.

In the present description, the terms component, module, device, etc.may refer to any type of logical or functional software elements,circuits, blocks and/or processes that may be implemented in a varietyof ways. For example, the functions of various circuits and/or blockscan be combined with one another into any other number of modules. Eachmodule may even be implemented as a software program stored on atangible memory (e.g., random access memory, read only memory, CD-ROMmemory, hard disk drive, etc.) to be read by a central processing unitto implement the functions of the innovations herein. Or, the modulescan comprise programming instructions transmitted to a general purposecomputer or to processing/graphics hardware via a transmission carrierwave. Also, the modules can be implemented as hardware logic circuitryimplementing the functions encompassed by the innovations herein.Finally, the modules can be implemented using special purposeinstructions (SIMD instructions), field programmable logic arrays or anymix thereof which provides the desired level performance and cost.

As disclosed herein, features consistent with the disclosure may beimplemented via computer-hardware, software and/or firmware. Forexample, the systems and methods disclosed herein may be embodied invarious forms including, for example, a data processor, such as acomputer that also includes a database, digital electronic circuitry,firmware, software, or in combinations of them. Further, while some ofthe disclosed implementations describe specific hardware components,systems and methods consistent with the innovations herein may beimplemented with any combination of hardware, software and/or firmware.Moreover, the above-noted features and other aspects and principles ofthe innovations herein may be implemented in various environments. Suchenvironments and related applications may be specially constructed forperforming the various routines, processes and/or operations accordingto the implementations described herein or they may include ageneral-purpose computer or computing platform selectively activated orreconfigured by code to provide the necessary functionality. Theprocesses disclosed herein are not inherently related to any particularcomputer, network, architecture, environment, or other apparatus, andmay be implemented by a suitable combination of hardware, software,and/or firmware. For example, various general-purpose machines may beused with programs written in accordance with teachings of theimplementations herein, or it may be more convenient to construct aspecialized apparatus or system to perform the required methods andtechniques.

Aspects of the method and system described herein, such as the logic,may also be implemented as functionality programmed into any of avariety of circuitry, including programmable logic devices (“PLDs”),such as field programmable gate arrays (“FPGAs”), programmable arraylogic (“PAL”) devices, electrically programmable logic and memorydevices and standard cell-based devices, as well as application specificintegrated circuits. Some other possibilities for implementing aspectsinclude: memory devices, microcontrollers with memory (such as EEPROM),embedded microprocessors, firmware, software, etc. Furthermore, aspectsmay be embodied in microprocessors having software-based circuitemulation, discrete logic (sequential and combinatorial), customdevices, fuzzy (neural) logic, quantum devices, and hybrids of any ofthe above device types. The underlying device technologies may beprovided in a variety of component types, e.g., metal-oxidesemiconductor field-effect transistor (“MOSFET”) technologies likecomplementary metal-oxide semiconductor (“CMOS”), bipolar technologieslike emitter-coupled logic (“ECL”), polymer technologies (e.g.,silicon-conjugated polymer and metal-conjugated polymer-metalstructures), mixed analog and digital, and so on.

It should also be noted that the various logic and/or functionsdisclosed herein may be enabled using any number of combinations ofhardware, firmware, and/or as data and/or instructions embodied invarious machine-readable or computer-readable media, in terms of theirbehavioral, register transfer, logic component, and/or othercharacteristics. Computer-readable media in which such formatted dataand/or instructions may be embodied include, but are not limited to,non-volatile storage media in various forms (e.g., optical, magnetic orsemiconductor storage media) though again does not include transitorymedia. Unless the context clearly requires otherwise, throughout thedescription, the words “comprise,” “comprising,” and the like are to beconstrued in an inclusive sense as opposed to an exclusive or exhaustivesense; that is to say, in a sense of “including, but not limited to.”Additionally, the words “herein,” “hereunder,” “above,” “below,” andwords of similar import refer to this application as a whole and not toany particular portions of this application.

Moreover, the above systems, devices, methods, processes, and the likemay be realized in hardware, software, or any combination of thesesuitable for a particular application. The hardware may include ageneral-purpose computer and/or dedicated computing device. Thisincludes realization in one or more microprocessors, microcontrollers,embedded microcontrollers, programmable digital signal processors orother programmable devices or processing circuitry, along with internaland/or external memory. This may also, or instead, include one or moreapplication specific integrated circuits, programmable gate arrays,programmable array logic components, or any other device or devices thatmay be configured to process electronic signals. It will further beappreciated that a realization of the processes or devices describedabove may include computer-executable code created using a structuredprogramming language such as C, an object oriented programming languagesuch as C++, or any other high-level or low-level programming language(including assembly languages, hardware description languages, anddatabase programming languages and technologies) that may be stored,compiled or interpreted to run on one of the above devices, as well asheterogeneous combinations of processors, processor architectures, orcombinations of different hardware and software. In another aspect, themethods may be embodied in systems that perform the steps thereof, andmay be distributed across devices in a number of ways. At the same time,processing may be distributed across devices such as the various systemsdescribed above, or all of the functionality may be integrated into adedicated, standalone device or other hardware. In another aspect, meansfor performing the steps associated with the processes described abovemay include any of the hardware and/or software described above. Allsuch permutations and combinations are intended to fall within the scopeof the present disclosure.

Embodiments disclosed herein may include computer program productscomprising computer-executable code or computer-usable code that, whenexecuting on one or more computing devices, performs any and/or all ofthe steps thereof. The code may be stored in a non-transitory fashion ina computer memory, which may be a memory from which the program executes(such as random access memory associated with a processor), or a storagedevice such as a disk drive, flash memory or any other optical,electromagnetic, magnetic, infrared or other device or combination ofdevices. In another aspect, any of the systems and methods describedabove may be embodied in any suitable transmission or propagation mediumcarrying computer-executable code and/or any inputs or outputs fromsame.

It will be appreciated that the devices, systems, and methods describedabove are set forth by way of example and not of limitation. Absent anexplicit indication to the contrary, the disclosed steps may bemodified, supplemented, omitted, and/or re-ordered without departingfrom the scope of this disclosure. Numerous variations, additions,omissions, and other modifications will be apparent to one of ordinaryskill in the art. In addition, the order or presentation of method stepsin the description and drawings above is not intended to require thisorder of performing the recited steps unless a particular order isexpressly required or otherwise clear from the context.

The method steps of the implementations described herein are intended toinclude any suitable method of causing such method steps to beperformed, consistent with the patentability of the following claims,unless a different meaning is expressly provided or otherwise clear fromthe context. So for example performing the step of X includes anysuitable method for causing another party such as a remote user, aremote processing resource (e.g., a server or cloud computer) or amachine to perform the step of X. Similarly, performing steps X, Y and Zmay include any method of directing or controlling any combination ofsuch other individuals or resources to perform steps X, Y and Z toobtain the benefit of such steps. Thus method steps of theimplementations described herein are intended to include any suitablemethod of causing one or more other parties or entities to perform thesteps, consistent with the patentability of the following claims, unlessa different meaning is expressly provided or otherwise clear from thecontext. Such parties or entities need not be under the direction orcontrol of any other party or entity, and need not be located within aparticular jurisdiction.

It should further be appreciated that the methods above are provided byway of example. Absent an explicit indication to the contrary, thedisclosed steps may be modified, supplemented, omitted, and/orre-ordered without departing from the scope of this disclosure.

It will be appreciated that the methods and systems described above areset forth by way of example and not of limitation. Numerous variations,additions, omissions, and other modifications will be apparent to one ofordinary skill in the art. In addition, the order or presentation ofmethod steps in the description and drawings above is not intended torequire this order of performing the recited steps unless a particularorder is expressly required or otherwise clear from the context. Thus,while particular embodiments have been shown and described, it will beapparent to those skilled in the art that various changes andmodifications in form and details may be made therein without departingfrom the spirit and scope of this disclosure and are intended to form apart of the invention as defined by the following claims, which are tobe interpreted in the broadest sense allowable by law.

1. A computer-implemented method for cancer detection and quantification comprising: receiving a medical image through a communications interface of a computing device over a data network; analyzing the medical image, with a processor of the computing device, to determine a first subset of contours in the medical image satisfying one or more criterion; analyzing, with the processor, one or more geometric attributes and one or more contrast attributes of contours included in the first subset of contours to identify a second subset of contours based upon contours satisfying one or more predetermined geometric and contrast attributes; selecting, with the processor, a third subset of contours from the second subset of contours that corresponds to potential calcifications, the third subset of contours selected based on contours within the second subset satisfying first calcification criteria; ranking, with the processor, contours included in the third subset of contours based on a selection metric, the selection metric accounting for a combination of contrast and intensity; grouping, with the processor, contours included in the third subset of contours into nested structures; selecting, with the processor, calcifications from the nested structures satisfying second calcification criteria; grouping, with the processor, the selected calcifications into clusters based on one or more of neighboring calcifications and a spatial cluster scale; classifying, with the processor, the clusters as benign or possible cancer by performing one or more of: a regression analysis on calcifications within the clusters, edge detection, a density analysis of the clusters, and a circularity analysis of the clusters; and scoring, with the processor, the clusters using an analytic function of geometric and contrast properties of the calcifications within each cluster, and spatial arrangements of the calcifications within each cluster. 2.-32. (canceled) 